* Abstract :
if you want make a excutable file using c-language,
you have to build like this.
(gather header,source code, convert to object file and make exe file)

MakeFile is just a script to build process what you have to do for above things
CMake is the script to auto-making 'makefile'
and continuously manage 'makefile'
It's more high-level script than 'makefile'
* reference